Skip to content

var /let/const 区别

简单

shell
# 区别
var 是函数作用域、会变量提升、可重复声明、会污染全局
let/const 块级作用域、暂存死区、不可重复声明、const 不可改地址

# 实际开发中
默认优先 const,需要修改变量再用 let,永远不用 var。

拓展

shell
- 变量提升:var声明的变量会提升到作用域顶部,初始化undefined;函数声明也会提升(优先级高于var)
- 暂时性死区(TDZ):let/const声明的变量,在声明前访问会报错,避免变量提升带来的问题